package info.motteke.mixivoice4j;

/**
 * 基本的な更新戦略です。
 * 前回の更新内容に依らず、決められたページ数を読み込んでいきます。
 *
 * @author Y.Wakamatsu
 *
 */
public class BasicUpdateStrategy implements UpdateStrategy {

    /** 配列の参照位置です。 */
    private int index = 0;

    /** 更新するページ数です。 */
    private final int[] pages = {4, 1, 1, 2, 1, 1, 2, 3, 1, 1, 2, 3,};

    /**
     * {@inheritDoc}
     * <p>
     *   この実装では、事前に決められたページ数を順に更新するプランを返します。
     * </p>
     */
    @Override
    public Plan getUpdatePlan(UpdateInfo previous) {
        int page =  pages[index++ % pages.length];

        return new Plan(UpdateUnit.PAGE, page, null);
    }
}
